package cn.zhejianglao.shirotemplate.service.file.dao;

import cn.zhejianglao.shirotemplate.common.model.FileVO;
import cn.zhejianglao.shirotemplate.common.model.PageRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface IFileMapper {
    /**
     * 插入记录
     *
     * @param fileVO 文件对象
     */
    void insert(FileVO fileVO);

    /**
     * 根据路径和名称删除记录
     *
     * @param path 路径
     * @param filename 文件名
     */
    void deleteByPathAndName(@Param("path") String path, @Param("filename") String filename);

    /**
     * 根据路径和名称获取所有人id
     *
     * @param path 路径
     * @param filename 文件名
     * @return owner id
     */
    Long selectOwnerIdByPathAndFilename(@Param("path") String path, @Param("filename") String filename);

    /**
     * 分页获取
     *
     * @param pageRequest 分页请求
     * @param currentUserId 用户id
     * @return 分页结果
     */
    List<FileVO> selectByPage(PageRequest pageRequest, @Param("userId") Long currentUserId);
}
